1. Field of the Invention
The present invention relates to an image coding apparatus configured to perform a series of coding processes leading up to arithmetic coding of image data, and a method thereof.
2. Description of the Related Art
“ITU-T Recommendation H.264/ISO/IEC 14496-10 AVC” has employed a new entropy coding scheme which is arithmetic coding different from MPEG2 or the like. The arithmetic coding is coding which partitions a probability number line depending on an occurrence probability of a symbol sequence, regards a binary decimal fractional value showing a position within a partitioned interval as a code with respect to the sequence, and serially configures a code sequence with arithmetic operations.
In a coding process for arithmetic codes used as one of the entropy coding in H.264/AVC (Advanced Video Coding), since a subsequent, next coding process cannot be started until the coding process for one bit is completed, parallelization is difficult.
In a conventional moving image coding apparatus for MPEG2 or the like, several pieces of hardware (a DCT section, a quantization section, a variable length coding section, a motion compensation section and the like) configured to perform the coding process are connected to one CPU to configure a pipeline, and processes are performed in a block unit through a pipeline operation.
However, a moving image coding apparatus compliant with H.264/AVC requires an arithmetic coding processing section, a motion prediction section, a prediction mode determination section, a deblocking filter section and the like as the hardware configured to perform the coding process. In the case of such a hardware configuration, respective processes in the motion prediction section, the prediction mode determination section, the deblocking filter section and the like are performed in a macroblock unit.
However, in such an H.264/AVC apparatus, if an operating frequency is adjusted to match the hardware other than the arithmetic coding processing section, the coding process for the arithmetic codes may not be terminated within a time period assigned for processing one macroblock, thereby pipeline processing may break down and a target performance may not be able to be achieved.
Conventionally, in order to solve this problem, a design in which a frequency of an entire CPU module is increased to meet the target performance is required. However, in order to provide a design in which a processing performance of the arithmetic coding processing section is increased to realize a processing time equivalent to a processing time in the hardware other than the arithmetic coding processing section, it is necessary to significantly increase a circuit size by using a high-performance CPU or the like.
For example, Japanese Patent Laid-Open No. 2005-130099 has proposed an arithmetic coding/decoding apparatus capable of high speed processing as a specific method of realizing arithmetic coding/decoding processes compliant with H.264/AVC. However, in the arithmetic coding/decoding apparatus, only the arithmetic coding/decoding processes are described, and another series of coding processes and decoding processes prior to the arithmetic coding process and subsequent to the decoding process thereof are not described. Particularly, an example of performing another series of coding processes and decoding processes in a predetermined data unit (that is, in the macroblock unit) through the pipeline processing is not described at all.